package com.dengyuanke.auth.common.constant;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author: dyk
 * Create time: 2019-06-10  11:40
 */
public interface SecurityConstants {
        /**
         * 刷新
         */
        String REFRESH_TOKEN = "refresh_token";
        /**
         * 验证码有效期
         */
        int CODE_TIME = 60;
        /**
         * 验证码长度
         */
        String CODE_SIZE = "4";
        /**
         * 角色前缀
         */
        String ROLE = "ROLE_";
        /**
         * 前缀
         */
        String PIGX_PREFIX = "pigx_";

        /**
         * oauth 相关前缀
         */
        String OAUTH_PREFIX = "oauth:";
        /**
         * 项目的license
         */
        String PIGX_LICENSE = "made by pigx";

        /**
         * 内部
         */
        String FROM_IN = "Y";

        /**
         * 标志
         */
        String FROM = "from";

        /**
         * OAUTH URL
         */
        String OAUTH_TOKEN_URL = "/oauth/token";

        /**
         * 手机号登录URL
         */
        String SMS_TOKEN_URL = "/mobile/token/sms";

        /**
         * 社交登录URL
         */
        String SOCIAL_TOKEN_URL = "/mobile/token/social";
        /**
         * 自定义登录URL
         */
        String MOBILE_TOKEN_URL = "/mobile/token/*";
        /**
         * oauth 客户端信息
         */
        String CLIENT_DETAILS_KEY = "pigx_oauth:client:details";

        /**
         * 微信获取OPENID
         */
        String WX_AUTHORIZATION_CODE_URL = "https://api.weixin.qq.com/sns/oauth2/access_token" +
                "?appid=%s&secret=%s&code=%s&grant_type=authorization_code";

        /**
         * {bcrypt} 加密的特征码
         */
        String BCRYPT = "{bcrypt}";
        /**
         * sys_oauth_client_details 表的字段，不包括client_id、client_secret
         */
        String CLIENT_FIELDS = "client_id, client_secret, resource_ids, scope, "
                + "authorized_grant_types, web_server_redirect_uri, authorities, access_token_validity, "
                + "refresh_token_validity, additional_information, autoapprove";

        /**
         * JdbcClientDetailsService 查询语句
         */
        String BASE_FIND_STATEMENT = "select " + CLIENT_FIELDS
                + " from sys_oauth_client_details";

        /**
         * 默认的查询语句
         */
        String DEFAULT_FIND_STATEMENT = BASE_FIND_STATEMENT + " order by client_id";

        /**
         * 按条件client_id 查询
         */
        String DEFAULT_SELECT_STATEMENT = BASE_FIND_STATEMENT + " where client_id = ?";

        /**
         * 资源服务器默认bean名称
         */
        String RESOURCE_SERVER_CONFIGURER = "resourceServerConfigurerAdapter";

        /**
         * 客户端模式
         */
        String CLIENT_CREDENTIALS = "client_credentials";

        /**
         * 用户ID字段
         */
        String DETAILS_USER_ID = "user_id";

        /**
         * 用户名字段
         */
        String DETAILS_USERNAME = "username";

        /**
         * 用户部门字段
         */
        String DETAILS_DEPT_ID = "dept_id";

        /**
         * 租户ID 字段
         */
        String DETAILS_TENANT_ID = "tenant_id";

        /**
         * 协议字段
         */
        String DETAILS_LICENSE = "license";


}
